javascript - QUnit 不会运行测试
全部标签 我有一些模型具有after_save回调。通常这很好,但在某些情况下,例如创建开发数据时,我想在不运行回调的情况下保存模型。有没有一种简单的方法可以做到这一点?类似于...Person#save(:run_callbacks=>false)或Person#save_without_callbacks我查看了Rails文档,但没有找到任何内容。然而,根据我的经验,Rails文档并不总能说明全部情况。更新我找到了ablogpost这解释了如何从这样的模型中删除回调:Foo.after_save.clear我找不到记录该方法的位置,但它似乎有效。 最佳答案
我认为有一种方法可以只运行具有给定标签的测试。有人知道吗? 最佳答案 您可以使用:focus散列属性标记示例。例如,#spec/foo_spec.rbRSpec.describeFoodoit'isneverexecuted'doraise"neverreached"endit'runsthisspec',focus:truedoexpect(1).toeq(1)endendrspec--tagfocusspec/foo_spec.rb有关GitHub的更多信息.(谁有更好的链接,请指教)(更新)RSpec现在是superblydo
我可以在一个文件中运行所有测试:raketestTEST=path/to/test_file.rb但是,如果我只想在那个文件中运行一个测试,我该怎么做呢?我正在寻找类似的功能:rspecpath/to/test_file.rb-l25 最佳答案 命令应该是:%raketestTEST=test/test_foobar.rbTESTOPTS="--name=test_foobar1-v" 关于ruby-是否可以在MiniTest中运行单个测试?,我们在StackOverflow上找到一个类
在RSpec中测试模块的最佳实践是什么?我有一些模块包含在少数模型中,现在我只是对每个模型进行重复测试(几乎没有差异)。有没有办法让它干起来? 最佳答案 最好的方式=>let(:dummy_class){Class.new{includeModuleToBeTested}}或者你可以用你的模块扩展测试类:let(:dummy_class){Class.new{extendModuleToBeTested}}在before(:each)中使用'let'比使用实例变量定义虚拟类要好WhentouseRSpeclet()?
我想测试一个类是否继承自另一个类,但似乎没有相应的方法。classAendclassBfalseB.superclass==A=>true我想要的一个简单实现是:classClassdefis_subclass_of?(clazz)returntrueifsuperclass==clazzreturnfalseifself==Objectsuperclass.is_subclass_of?(clazz)endend但我希望它已经存在。 最佳答案 只需使用运算符BtrueAfalse或使用运算符(operator)BtrueAtrue
我在RubyonRails中使用IF语句来尝试测试是否设置了请求参数。无论是否设置了两个参数,以下ifblock的第一部分都会被触发。如果同时设置了params[:one]和params[:two],我怎样才能让这部分被触发?if(defined?params[:one])&&(defined?params[:two])...dosomething...elsif(defined?params[:one])...dosomething...end 最佳答案 你想要has_key?:if(params.has_key?(:one)&&
是否有运行单个迁移的简单方法?我不想迁移到某个版本,我只想运行一个特定的版本。 最佳答案 假设你总是可以运行最新版本的Rails:rakedb:migrate:upVERSION=20090408054532其中版本是迁移文件名中的时间戳。编辑:在过去8年的某个时候(我不确定是哪个版本)Rails添加了检查以防止它在已经运行的情况下运行。这由schema_migrations表中的条目指示。要重新运行它,只需执行rakedb:migrate:redoVERSION=20090408054532即可。
我希望能够运行单个规范文件的测试——例如,针对我正在编辑的一个文件。rakespec执行所有规范。我的项目不是Rails项目,所以rakespec:doc不起作用。不知道这是否重要,但这是我的目录结构。./Rakefile./lib./lib/cushion.rb./lib/cushion./lib/cushion/doc.rb./lib/cushion/db.rb./spec./spec/spec.opts./spec/spec_helper.rb./spec/db_spec.rb 最佳答案 或者您可以跳过rake并使用“rspe
我有以下文件:/spec/controllers/groups_controller_spec.rb我在终端中使用什么命令来运行该规范,我在什么目录中运行该命令?我的gem文件:#TestENVIRONMENTGEMSgroup:development,:testdogem"autotest"gem"rspec-rails","~>2.4"gem"cucumber-rails",">=0.3.2"gem"webrat",">=0.7.2"gem'factory_girl_rails'gem'email_spec'end规范文件:require'spec_helper'describeG
我们最近遇到了一个问题,在发生一系列提交后,后端进程无法运行。现在,我们是好child,每次checkin后都会运行raketest但是,由于Rails库加载中的一些奇怪之处,只有当我们在生产模式下直接从Mongrel运行它时才会发生.我追踪到了这个错误,它是由于一个新的Railsgem以一种破坏了运行时Rails代码中的一个狭窄使用的方式覆盖了String类中的一个方法。总之,长话短说,有没有办法在运行时询问Ruby在哪里定义了方法?像whereami(:foo)这样返回/path/to/some/file.rbline#45的东西?在这种情况下,告诉我它是在类String中定义的将